<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /* 
        1. 方法第二个参数作为sum初始值，此时回调函数执行的次数为数组元素的个数
        2. 方法第二个参数不存在，sum初始值为回调函数的第一个元素，此时函数执行的次数为数组元素的个数-1
        3. 回调函数的返回值，会直接赋值给下一个函数的sum
        4. reduce方法的返回值=最后一次回调函数的返回值
      */
      const arr = [1, 2, 3, 4, 5];
      const r = arr.reduce(function (sum, v, i) {
        console.log(sum, v, i);
        return sum + 1;
      });
      console.log(r);
      // let sum = 0;
      // for (let i = 0; i < arr.length; i++) {
      //   sum += arr[i];
      // }
      // console.log(sum);
    </script>
  </body>
</html>
